Custom Processor Development (Java)

Java Technologies - অ্যাপাচি নিফাই (Apache NiFi) Custom Processor Development |
164
164

অ্যাপাচি নিফাই (Apache NiFi) আপনাকে কাস্টম প্রোসেসর (Custom Processor) তৈরি করার সুযোগ দেয়, যা আপনার নির্দিষ্ট ডেটা প্রোসেসিং চাহিদা পূরণের জন্য কাজ করতে পারে। NiFi প্রোসেসরগুলি Java ভিত্তিক এবং আপনি যদি কোনো নির্দিষ্ট ডেটা প্রক্রিয়া করতে চান যা NiFi-এর বিল্ট-ইন প্রোসেসর দ্বারা সমর্থিত নয়, তবে কাস্টম প্রোসেসর তৈরি করা একটি উপযুক্ত সমাধান হতে পারে। এই গাইডে, আমরা NiFi-তে কাস্টম প্রোসেসর ডেভেলপমেন্ট (Java) সম্পর্কিত প্রক্রিয়া এবং পদক্ষেপগুলো বিস্তারিতভাবে আলোচনা করব।

কাস্টম প্রোসেসর ডেভেলপমেন্টের ধাপসমূহ

১. পূর্বপ্রস্তুতি

কাস্টম প্রোসেসর তৈরি করতে, আপনাকে Java এবং NiFi-এর SDK (Software Development Kit) সম্পর্কে কিছু ধারণা থাকতে হবে। এছাড়া Maven এবং Java Development Kit (JDK) ইনস্টল করা থাকতে হবে।

  1. Maven ইনস্টলেশন: Apache Maven একটি বিল্ড টুল যা NiFi প্রোজেক্টের জন্য প্রয়োজনীয় ডিপেনডেন্সি ম্যানেজমেন্ট করতে সাহায্য করে।
  2. JDK ইনস্টলেশন: NiFi প্রোসেসর তৈরি করতে Java Development Kit (JDK) 8 বা তার পরবর্তী সংস্করণ ব্যবহার করতে হবে।

২. NiFi SDK সেটআপ

NiFi এর কাস্টম প্রোসেসর তৈরি করার জন্য NiFi SDK ব্যবহার করতে হবে। এটি আপনাকে Java ক্লাস তৈরি, প্রোসেসর কনফিগার এবং কোড লেখার জন্য সহায়তা করবে।

  1. NiFi SDK প্রোজেক্ট তৈরি করা: আপনি Maven বা Gradle ব্যবহার করে একটি নতুন প্রোজেক্ট তৈরি করতে পারেন।

    <dependency>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-api</artifactId>
        <version>1.14.0</version>  <!-- NiFi version-->
    </dependency>
    
  2. NiFi SDK মাভেন প্রকল্পের জন্য সেটআপ: Maven প্রোজেক্ট তৈরি করুন এবং pom.xml ফাইলের মধ্যে নিচের ডিপেনডেন্সি যোগ করুন।

    <dependencies>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-api</artifactId>
            <version>1.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-processor-api</artifactId>
            <version>1.14.0</version>
        </dependency>
    </dependencies>
    

৩. কাস্টম প্রোসেসর তৈরি করা

NiFi-তে কাস্টম প্রোসেসর তৈরি করার জন্য, আপনাকে NiFi এর প্রোসেসর API ক্লাস ব্যবহার করতে হবে। একটি সাধারণ কাস্টম প্রোসেসরের জন্য একটি Java ক্লাস তৈরি করতে হবে যা AbstractProcessor ক্লাস বা AbstractSession ইন্টারফেসকে এক্সটেন্ড করবে।

package com.example.nifi.processor;

import org.apache.nifi.annotation.behavior.TriggerWhenEmpty;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.ProcessSession;
import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.flowfile.FlowFile;
import org.apache.nifi.annotation.lifecycle.OnScheduled;
import org.apache.nifi.annotation.lifecycle.OnStopped;

@TriggerWhenEmpty
public class CustomProcessor extends AbstractProcessor {

    @Override
    protected void init(final ProcessorInitializationContext context) {
        // Initialization code here
    }

    @Override
    public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
        FlowFile flowFile = session.get();
        if (flowFile != null) {
            // Add your processing logic here
            getLogger().info("Processing flowfile: " + flowFile.getAttribute("filename"));
            session.transfer(flowFile, REL_SUCCESS);
        }
    }

    @OnScheduled
    public void onScheduled(final ProcessContext context) {
        // Code to execute when the processor is scheduled
    }

    @OnStopped
    public void onStopped() {
        // Code to execute when the processor is stopped
    }
}

৪. প্রোসেসরের ইনপুট এবং আউটপুট কনফিগারেশন

কাস্টম প্রোসেসরের জন্য ইনপুট এবং আউটপুট রিলেশনশিপ (relationships) নির্ধারণ করতে হবে। NiFi প্রোসেসর বিভিন্ন স্টেট বা রিলেশনশিপ দ্বারা ট্রান্সফার করা ফ্লোফাইলগুলিকে নিয়ন্ত্রণ করে।

public static final Relationship REL_SUCCESS = new Relationship.Builder()
        .name("success")
        .description("Successfully processed flow files")
        .build();

public static final Relationship REL_FAILURE = new Relationship.Builder()
        .name("failure")
        .description("Failed to process flow files")
        .build();

@Override
public Set<Relationship> getRelationships() {
    return Collections.singleton(REL_SUCCESS);
}

৫. প্রোসেসরের প্রপার্টি কনফিগারেশন

প্রোসেসর সাধারণত কনফিগারেবল প্রপার্টির মাধ্যমে কাস্টমাইজ করা যায়। NiFi প্রোসেসর কনফিগারেশনে প্রপার্টি ঘোষণা করতে @Property অ্যাট্রিবিউট ব্যবহার করা হয়।

@Property(
    name = "outputDirectory",
    description = "Directory to write the output files",
    defaultValue = "/tmp/output"
)
private String outputDirectory;

৬. কাস্টম প্রোসেসর বিল্ড এবং ডিপ্লয়মেন্ট

  1. Builidng the Processor: একবার কাস্টম প্রোসেসরের কোড লেখা হয়ে গেলে, Maven বা অন্য কোন বিল্ড টুল ব্যবহার করে আপনার প্রোজেক্ট বিল্ড করুন।

    mvn clean install
    
  2. প্রোসেসর প্যাকেজ তৈরি করুন: Maven কমান্ড চালানোর পর একটি .nar (NiFi Archive) ফাইল তৈরি হবে যা NiFi-তে ইনস্টল করা যাবে।
  3. NiFi তে ডিপ্লয়মেন্ট: .nar ফাইলটি NiFi এর lib ডিরেক্টরিতে কপি করুন এবং NiFi সার্ভিস রিস্টার্ট করুন।
  4. NiFi UI তে কাস্টম প্রোসেসর ব্যবহৃত করুন: NiFi UI তে গিয়ে নতুন কাস্টম প্রোসেসরটি যুক্ত করুন এবং সেটি আপনার ডেটা ফ্লোতে ব্যবহার করতে শুরু করুন।

৭. কাস্টম প্রোসেসরের টেস্টিং

NiFi UI তে কাস্টম প্রোসেসর ডিপ্লয় করার পরে, আপনাকে সেগুলির কার্যকারিতা নিশ্চিত করতে হবে। NiFi তে লগিং ব্যবস্থাও আছে, যা ডিবাগিং এবং মনিটরিং এর জন্য খুবই সহায়ক।

getLogger().info("Custom Processor executed successfully");

সারাংশ

অ্যাপাচি নিফাই তে কাস্টম প্রোসেসর ডেভেলপমেন্ট আপনাকে নির্দিষ্ট ডেটা প্রক্রিয়াগুলির জন্য প্রোসেসর তৈরি করার সুযোগ দেয়, যা নিফাইয়ের বিল্ট-ইন প্রোসেসরগুলি দ্বারা সমর্থিত নয়। Java ভিত্তিক কাস্টম প্রোসেসর তৈরি করতে আপনাকে NiFi এর SDK ব্যবহার করতে হবে, প্রোসেসরের ইনপুট এবং আউটপুট সম্পর্ক, প্রপার্টি কনফিগারেশন এবং অন্যান্য কাস্টম লজিক যুক্ত করতে হবে। একবার প্রোসেসর তৈরি হয়ে গেলে, আপনি এটি NiFi UI তে ব্যবহার এবং পরীক্ষণ করতে পারবেন, যা আপনার ডেটা প্রোসেসিং কাজকে আরও কার্যকরী এবং কাস্টমাইজড করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion